/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef DeployModel_h
#define DeployModel_h

@interface Milestone :NSObject

/// 里程碑ID
@property (strong,nonatomic,nonnull)  NSString*  milestoneId;

/// 应用ID
@property (strong,nonatomic,nonnull)  NSString*  appId;

/// 应用名称
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 地域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 部署方式：1滚动部署，2蓝绿部署
@property (strong,nonatomic,nonnull)  NSNumber*  deployMethod;

/// 部署来源：1url，2云编译，3云存储
@property (strong,nonatomic,nonnull)  NSNumber*  deploySource;

/// 下载url
@property (strong,nonatomic,nonnull)  NSString*  downloadUrl;

/// md5
@property (strong,nonatomic,nonnull)  NSString*  md5;

/// 云编译项目名
@property (strong,nonatomic,nonnull)  NSString*  compileProject;

/// 云编译构建序号
@property (strong,nonatomic,nonnull)  NSString*  compileSeries;

/// 云存储空间
@property (strong,nonatomic,nonnull)  NSString*  ossSpace;

/// 云存储目录
@property (strong,nonatomic,nonnull)  NSString*  ossDir;

/// 文件类型：1.tar，2.zip,3.tar.gz
@property (strong,nonatomic,nonnull)  NSNumber*  fileType;

/// 最新部署时间
@property (strong,nonatomic,nonnull)  NSNumber*  lastDeployTime;

/// 部署组
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  deployGroup;


-(id) initWithMilestoneId:(NSString*) milestoneId
    appId:(NSString*)appId
    appName:(NSString*)appName
    regionId:(NSString*)regionId
    desc:(NSString*)desc
    deployMethod:(NSNumber*)deployMethod
    deploySource:(NSNumber*)deploySource
    downloadUrl:(NSString*)downloadUrl
    md5:(NSString*)md5
    compileProject:(NSString*)compileProject
    compileSeries:(NSString*)compileSeries
    ossSpace:(NSString*)ossSpace
    ossDir:(NSString*)ossDir
    fileType:(NSNumber*)fileType
    lastDeployTime:(NSNumber*)lastDeployTime
    deployGroup:(NSArray<NSString*>*)deployGroup;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ModifyApp :NSObject

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;


-(id) initWithDesc:(NSString*) desc;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface App :NSObject

/// 应用ID
@property (strong,nonatomic,nonnull)  NSString*  appId;

/// 应用名称
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 地域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 部署平台：1云主机，2原生容器
@property (strong,nonatomic,nonnull)  NSNumber*  platform;

/// 使用分布式服务框架：0不使用，1使用
@property (strong,nonatomic,nonnull)  NSNumber*  jdsfEnabled;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 上次部署时间
@property (strong,nonatomic,nonnull)  NSNumber*  lastDeployTime;


-(id) initWithAppId:(NSString*) appId
    appName:(NSString*)appName
    regionId:(NSString*)regionId
    platform:(NSNumber*)platform
    jdsfEnabled:(NSNumber*)jdsfEnabled
    desc:(NSString*)desc
    lastDeployTime:(NSNumber*)lastDeployTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateApp :NSObject

/// 应用名称
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 部署平台
@property (strong,nonatomic,nonnull)  NSNumber*  platform;

/// 使用分布式服务框架：0不使用，1使用
@property (strong,nonatomic,nonnull)  NSNumber*  jdsfEnabled;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;


-(id) initWithAppName:(NSString*) appName
    platform:(NSNumber*)platform
    jdsfEnabled:(NSNumber*)jdsfEnabled
    desc:(NSString*)desc;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeployStage :NSObject

/// code
@property (strong,nonatomic,nonnull)  NSNumber*  stageCode;

/// name
@property (strong,nonatomic,nonnull)  NSString*  stageName;

/// 状态（0未执行，1执行，2失败）
@property (strong,nonatomic,nonnull)  NSNumber*  stageStatus;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  stageMessage;

/// 部署完成的实例数
@property (strong,nonatomic,nonnull)  NSNumber*  succeedCount;

/// 所有实例数
@property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

/// CreateTime
@property (strong,nonatomic,nonnull)  NSNumber*  createTime;

/// UpdateTime
@property (strong,nonatomic,nonnull)  NSNumber*  updateTime;


-(id) initWithStageCode:(NSNumber*) stageCode
    stageName:(NSString*)stageName
    stageStatus:(NSNumber*)stageStatus
    stageMessage:(NSString*)stageMessage
    succeedCount:(NSNumber*)succeedCount
    totalCount:(NSNumber*)totalCount
    createTime:(NSNumber*)createTime
    updateTime:(NSNumber*)updateTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateDeploy :NSObject

/// 部署组ID，部署组的唯一标识
@property (strong,nonatomic,nonnull)  NSString*  groupId;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 部署来源：1url，2云编译，3云存储
@property (strong,nonatomic,nonnull)  NSNumber*  deploySource;

/// 部署操作
@property (strong,nonatomic,nonnull)  NSString*  deployCmd;

/// 1使用输入的操作，2使用程序自带操作
@property (strong,nonatomic,nonnull)  NSNumber*  cmdSource;

/// 部署操作展示格式：1form,2ymal
@property (strong,nonatomic,nonnull)  NSNumber*  cmdType;

/// 项目类型 1tomcat,2
@property (strong,nonatomic,nonnull)  NSNumber*  productType;

/// 下载url
@property (strong,nonatomic,nonnull)  NSString*  downloadUrl;

/// md5
@property (strong,nonatomic,nonnull)  NSString*  md5;

/// 云编译项目名
@property (strong,nonatomic,nonnull)  NSString*  compileProject;

/// 云编译构建序号
@property (strong,nonatomic,nonnull)  NSString*  compileSeries;

/// 云存储空间
@property (strong,nonatomic,nonnull)  NSString*  ossSpace;

/// 云存储目录
@property (strong,nonatomic,nonnull)  NSString*  ossDir;

/// 文件类型：1.tar，2.zip,3.tar.gz
@property (strong,nonatomic,nonnull)  NSNumber*  fileType;


-(id) initWithGroupId:(NSString*) groupId
    desc:(NSString*)desc
    deploySource:(NSNumber*)deploySource
    deployCmd:(NSString*)deployCmd
    cmdSource:(NSNumber*)cmdSource
    cmdType:(NSNumber*)cmdType
    productType:(NSNumber*)productType
    downloadUrl:(NSString*)downloadUrl
    md5:(NSString*)md5
    compileProject:(NSString*)compileProject
    compileSeries:(NSString*)compileSeries
    ossSpace:(NSString*)ossSpace
    ossDir:(NSString*)ossDir
    fileType:(NSNumber*)fileType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Deploy :NSObject

/// 上线单ID
@property (strong,nonatomic,nonnull)  NSString*  deployId;

/// 应用ID
@property (strong,nonatomic,nonnull)  NSString*  appId;

/// 应用名称
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 部署组名称
@property (strong,nonatomic,nonnull)  NSString*  groupId;

/// 部署组ID
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 地域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 部署开始时间
@property (strong,nonatomic,nonnull)  NSNumber*  startTime;

/// 部署结束时间
@property (strong,nonatomic,nonnull)  NSNumber*  endTime;

/// 部署状态 0待部署, 1部署中, 2成功, 3失败, 4回滚中， 5回滚成功， 6回滚失败， 7已取消
@property (strong,nonatomic,nonnull)  NSNumber*  deployStatus;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 部署方式：1滚动部署，2蓝绿部署
@property (strong,nonatomic,nonnull)  NSNumber*  deployMethod;

/// 部署来源：1url，2云编译，3云存储
@property (strong,nonatomic,nonnull)  NSNumber*  deploySource;

/// 部署操作
@property (strong,nonatomic,nonnull)  NSString*  deployCmd;

/// 1使用输入的操作，2使用程序自带操作
@property (strong,nonatomic,nonnull)  NSNumber*  cmdSource;

/// 部署操作展示格式：1form,2ymal
@property (strong,nonatomic,nonnull)  NSNumber*  cmdType;

/// 项目类型 1tomcat,2
@property (strong,nonatomic,nonnull)  NSNumber*  productType;

/// 下载url
@property (strong,nonatomic,nonnull)  NSString*  downloadUrl;

/// md5
@property (strong,nonatomic,nonnull)  NSString*  md5;

/// 云编译项目名
@property (strong,nonatomic,nonnull)  NSString*  compileProject;

/// 云编译构建序号
@property (strong,nonatomic,nonnull)  NSString*  compileSeries;

/// 云存储空间
@property (strong,nonatomic,nonnull)  NSString*  ossSpace;

/// 云存储目录
@property (strong,nonatomic,nonnull)  NSString*  ossDir;

/// 文件类型：1.tar，2.zio,3.tar.gz
@property (strong,nonatomic,nonnull)  NSNumber*  fileType;

/// 是否可回滚 1是，2否
@property (strong,nonatomic,nonnull)  NSNumber*  rollbackAble;

/// 并发单位
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyUnit;

/// 并发机器数
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyNum;

/// 并发度
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyPct;

/// 负载均衡：1启动，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  lbStatus;

/// lb实例
@property (strong,nonatomic,nonnull)  NSString*  lbInstance;

/// lb 后端实例
@property (strong,nonatomic,nonnull)  NSString*  lbBackend;

/// 同名文件处理方式：1部署失败，2覆盖，3保留
@property (strong,nonatomic,nonnull)  NSNumber*  repeatPolicy;

/// 通知频率：1异常发送，2每次发送
@property (strong,nonatomic,nonnull)  NSNumber*  noticeTrigger;

/// 通知方式：1消息，2邮件，3短信
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  noticeMethod;

/// 使用分布式服务框架：0不使用，1使用
@property (strong,nonatomic,nonnull)  NSNumber*  jdsfEnabled;


-(id) initWithDeployId:(NSString*) deployId
    appId:(NSString*)appId
    appName:(NSString*)appName
    groupId:(NSString*)groupId
    groupName:(NSString*)groupName
    regionId:(NSString*)regionId
    startTime:(NSNumber*)startTime
    endTime:(NSNumber*)endTime
    deployStatus:(NSNumber*)deployStatus
    desc:(NSString*)desc
    deployMethod:(NSNumber*)deployMethod
    deploySource:(NSNumber*)deploySource
    deployCmd:(NSString*)deployCmd
    cmdSource:(NSNumber*)cmdSource
    cmdType:(NSNumber*)cmdType
    productType:(NSNumber*)productType
    downloadUrl:(NSString*)downloadUrl
    md5:(NSString*)md5
    compileProject:(NSString*)compileProject
    compileSeries:(NSString*)compileSeries
    ossSpace:(NSString*)ossSpace
    ossDir:(NSString*)ossDir
    fileType:(NSNumber*)fileType
    rollbackAble:(NSNumber*)rollbackAble
    concurrencyUnit:(NSNumber*)concurrencyUnit
    concurrencyNum:(NSNumber*)concurrencyNum
    concurrencyPct:(NSNumber*)concurrencyPct
    lbStatus:(NSNumber*)lbStatus
    lbInstance:(NSString*)lbInstance
    lbBackend:(NSString*)lbBackend
    repeatPolicy:(NSNumber*)repeatPolicy
    noticeTrigger:(NSNumber*)noticeTrigger
    noticeMethod:(NSArray<NSString*>*)noticeMethod
    jdsfEnabled:(NSNumber*)jdsfEnabled;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Ag :NSObject

/// 高可用组名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 高可用组id
@property (strong,nonatomic,nonnull)  NSString*  idValue;


-(id) initWithName:(NSString*) name
    idValue:(NSString*)idValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface StageLog :NSObject

/// 执行阶段名
@property (strong,nonatomic,nonnull)  NSString*  stage;

/// 执行阶段状态
@property (strong,nonatomic,nonnull)  NSString*  status;

/// 执行阶段输出
@property (strong,nonatomic,nonnull)  NSString*  msg;

/// 执行阶段耗时
@property (strong,nonatomic,nonnull)  NSString*  time;


-(id) initWithStage:(NSString*) stage
    status:(NSString*)status
    msg:(NSString*)msg
    time:(NSString*)time;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Vpc :NSObject

/// 高可用组名称
@property (strong,nonatomic,nonnull)  NSString*  name;

/// 高可用组id
@property (strong,nonatomic,nonnull)  NSString*  idValue;


-(id) initWithName:(NSString*) name
    idValue:(NSString*)idValue;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CheckAgentStatusRequest :NSObject

/// 部署组名
@property (strong,nonatomic,nonnull)  NSString*  groupId;


-(id) initWithGroupId:(NSString*) groupId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Rollback :NSObject

/// 回滚策略ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 回滚策略名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeployStatus :NSObject

/// 部署状态ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 部署状态名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface NoticeMethod :NSObject

/// 通知方式ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 通知方式名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeploySource :NSObject

/// 部署来源ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 部署来源名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeployType :NSObject

/// 部署类型ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 部署类型名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface NoticeTrigger :NSObject

/// 通知触发策略ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 通知触发策略名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AgentStatus :NSObject

/// 部署状态ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 部署状态名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface StatusColor :NSObject

/// 部署状态ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 部署状态名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface FileType :NSObject

/// 文件类型ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 文件类型名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ConcurrencyUnit :NSObject

/// 并发单位ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 并发单位名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RegionId :NSObject

/// 地域ID
@property (strong,nonatomic,nonnull)  NSString*  value;

/// 地域名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSString*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeployMethod :NSObject

/// 部署方式ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 部署方式名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Platform :NSObject

/// 平台ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 平台名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface RepeatPolicy :NSObject

/// 重名文件处理策略ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 重名文件处理策略名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface GrayService :NSObject

/// 用户类型ID
@property (strong,nonatomic,nonnull)  NSNumber*  value;

/// 用户类型名称
@property (strong,nonatomic,nonnull)  NSString*  label;


-(id) initWithValue:(NSNumber*) value
    label:(NSString*)label;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CreateGroup :NSObject

/// 部署组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 应用ID
@property (strong,nonatomic,nonnull)  NSString*  appId;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 部署方式：1滚动部署，2蓝绿部署
@property (strong,nonatomic,nonnull)  NSNumber*  deployMethod;

/// 部署实例（滚动部署）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  instances;

/// 部署实例（蓝绿部署蓝组）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  blueInstances;

/// 部署实例（蓝绿部署绿组）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  greenInstances;

/// 并发单位
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyUnit;

/// 并发机器数
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyNum;

/// 并发度
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyPct;

/// 负载均衡：1启动，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  lbStatus;

/// lb实例
@property (strong,nonatomic,nonnull)  NSString*  lbInstance;

/// lb lb后端服务
@property (strong,nonatomic,nonnull)  NSString*  lbBackend;

/// 同名文件处理方式：1部署失败，2覆盖，3保留
@property (strong,nonatomic,nonnull)  NSNumber*  repeatPolicy;

/// 通知频率：0不发送，1消息，2邮件，3短信
@property (strong,nonatomic,nonnull)  NSNumber*  noticeTrigger;

/// 通知方式：1消息，2邮件，3短信
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  noticeMethod;

/// 自动回滚：1开启，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  rollback;

/// 分布式服务框架ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegisterId;


-(id) initWithGroupName:(NSString*) groupName
    appId:(NSString*)appId
    desc:(NSString*)desc
    deployMethod:(NSNumber*)deployMethod
    instances:(NSArray<NSString*>*)instances
    blueInstances:(NSArray<NSString*>*)blueInstances
    greenInstances:(NSArray<NSString*>*)greenInstances
    concurrencyUnit:(NSNumber*)concurrencyUnit
    concurrencyNum:(NSNumber*)concurrencyNum
    concurrencyPct:(NSNumber*)concurrencyPct
    lbStatus:(NSNumber*)lbStatus
    lbInstance:(NSString*)lbInstance
    lbBackend:(NSString*)lbBackend
    repeatPolicy:(NSNumber*)repeatPolicy
    noticeTrigger:(NSNumber*)noticeTrigger
    noticeMethod:(NSArray<NSString*>*)noticeMethod
    rollback:(NSNumber*)rollback
    jdsfRegisterId:(NSString*)jdsfRegisterId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface ModifyGroup :NSObject

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 部署实例（滚动）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  instances;

/// 部署实例（蓝）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  blueInstances;

/// 部署实例（绿）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  greenInstances;

/// 并发单位
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyUnit;

/// 并发机器数
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyNum;

/// 并发度
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyPct;

/// 负载均衡：1启动，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  lbStatus;

/// lb实例
@property (strong,nonatomic,nonnull)  NSString*  lbInstance;

/// lb lb_backend
@property (strong,nonatomic,nonnull)  NSString*  lbBackend;

/// 同名文件处理方式：1部署失败，2覆盖，3保留
@property (strong,nonatomic,nonnull)  NSNumber*  repeatPolicy;

/// 通知频率：1异常发送，2每次发送
@property (strong,nonatomic,nonnull)  NSNumber*  noticeTrigger;

/// 通知方式：1消息，2邮件，3短信
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  noticeMethod;

/// 自动回滚：1开启，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  rollback;

/// 分布式服务框架ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegisterId;


-(id) initWithDesc:(NSString*) desc
    instances:(NSArray<NSString*>*)instances
    blueInstances:(NSArray<NSString*>*)blueInstances
    greenInstances:(NSArray<NSString*>*)greenInstances
    concurrencyUnit:(NSNumber*)concurrencyUnit
    concurrencyNum:(NSNumber*)concurrencyNum
    concurrencyPct:(NSNumber*)concurrencyPct
    lbStatus:(NSNumber*)lbStatus
    lbInstance:(NSString*)lbInstance
    lbBackend:(NSString*)lbBackend
    repeatPolicy:(NSNumber*)repeatPolicy
    noticeTrigger:(NSNumber*)noticeTrigger
    noticeMethod:(NSArray<NSString*>*)noticeMethod
    rollback:(NSNumber*)rollback
    jdsfRegisterId:(NSString*)jdsfRegisterId;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Group :NSObject

/// 部署组ID
@property (strong,nonatomic,nonnull)  NSString*  groupId;

/// 部署组名称
@property (strong,nonatomic,nonnull)  NSString*  groupName;

/// 应用ID
@property (strong,nonatomic,nonnull)  NSString*  appId;

/// 应用名称
@property (strong,nonatomic,nonnull)  NSString*  appName;

/// 地域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 状态
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 部署平台：1云主机，2原生容器
@property (strong,nonatomic,nonnull)  NSNumber*  platform;

/// 描述
@property (strong,nonatomic,nonnull)  NSString*  desc;

/// 部署方式：1滚动部署，2蓝绿部署
@property (strong,nonatomic,nonnull)  NSNumber*  deployMethod;

/// 部署实例（滚动）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  instances;

/// 部署实例（蓝）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  blueInstances;

/// 部署实例（绿）
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  greenInstances;

/// 并发单位
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyUnit;

/// 并发机器数
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyNum;

/// 并发度
@property (strong,nonatomic,nonnull)  NSNumber*  concurrencyPct;

/// 负载均衡：1启动，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  lbStatus;

/// lb实例
@property (strong,nonatomic,nonnull)  NSString*  lbInstance;

/// lb lb_backend
@property (strong,nonatomic,nonnull)  NSString*  lbBackend;

/// 同名文件处理方式：1部署失败，2覆盖，3保留
@property (strong,nonatomic,nonnull)  NSNumber*  repeatPolicy;

/// 通知频率：1异常发送，2每次发送
@property (strong,nonatomic,nonnull)  NSNumber*  noticeTrigger;

/// 通知方式：1消息，2邮件，3短信
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  noticeMethod;

/// 自动回滚：1开启，2禁用
@property (strong,nonatomic,nonnull)  NSNumber*  rollback;

/// 使用分布式服务框架：0不使用，1使用
@property (strong,nonatomic,nonnull)  NSNumber*  jdsfEnabled;

/// 分布式服务框架ID
@property (strong,nonatomic,nonnull)  NSString*  jdsfRegisterId;

/// 上次部署时间
@property (strong,nonatomic,nonnull)  NSNumber*  lastDeployTime;


-(id) initWithGroupId:(NSString*) groupId
    groupName:(NSString*)groupName
    appId:(NSString*)appId
    appName:(NSString*)appName
    regionId:(NSString*)regionId
    status:(NSNumber*)status
    platform:(NSNumber*)platform
    desc:(NSString*)desc
    deployMethod:(NSNumber*)deployMethod
    instances:(NSArray<NSString*>*)instances
    blueInstances:(NSArray<NSString*>*)blueInstances
    greenInstances:(NSArray<NSString*>*)greenInstances
    concurrencyUnit:(NSNumber*)concurrencyUnit
    concurrencyNum:(NSNumber*)concurrencyNum
    concurrencyPct:(NSNumber*)concurrencyPct
    lbStatus:(NSNumber*)lbStatus
    lbInstance:(NSString*)lbInstance
    lbBackend:(NSString*)lbBackend
    repeatPolicy:(NSNumber*)repeatPolicy
    noticeTrigger:(NSNumber*)noticeTrigger
    noticeMethod:(NSArray<NSString*>*)noticeMethod
    rollback:(NSNumber*)rollback
    jdsfEnabled:(NSNumber*)jdsfEnabled
    jdsfRegisterId:(NSString*)jdsfRegisterId
    lastDeployTime:(NSNumber*)lastDeployTime;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface PinInfo :NSObject

/// pin
@property (strong,nonatomic,nonnull)  NSString*  pin;

/// 应用数量限制
@property (strong,nonatomic,nonnull)  NSNumber*  appMax;

/// 当前应用数量
@property (strong,nonatomic,nonnull)  NSNumber*  appCount;

/// 部署组数量限制
@property (strong,nonatomic,nonnull)  NSNumber*  groupMax;


-(id) initWithPin:(NSString*) pin
    appMax:(NSNumber*)appMax
    appCount:(NSNumber*)appCount
    groupMax:(NSNumber*)groupMax;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface DeployInstance :NSObject

/// 部署ID
@property (strong,nonatomic,nonnull)  NSString*  deployId;

/// 云主机ID
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// 云主机名称
@property (strong,nonatomic,nonnull)  NSString*  instanceName;

/// ip
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 公网ip
@property (strong,nonatomic,nonnull)  NSString*  public_ip;

/// 地域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 私有网络
@property (strong,nonatomic,nonnull)  Vpc*  vpc;

/// 类型 1云主机，2原生容器
@property (strong,nonatomic,nonnull)  NSNumber*  type;

/// 高可用组
@property (strong,nonatomic,nonnull)  Ag*  ag;

/// 标签
@property (strong,nonatomic,nonnull)  NSString*  tags;

/// 所属部署组ID，多个,分隔
@property (strong,nonatomic,nonnull)  NSString*  groupId;

/// 部署方式：1滚动 2蓝组 3绿组
@property (strong,nonatomic,nonnull)  NSNumber*  method;

/// 部署状态
@property (strong,nonatomic,nonnull)  NSNumber*  status;


-(id) initWithDeployId:(NSString*) deployId
    uuid:(NSString*)uuid
    instanceName:(NSString*)instanceName
    ip:(NSString*)ip
    public_ip:(NSString*)public_ip
    regionId:(NSString*)regionId
    vpc:(Vpc*)vpc
    type:(NSNumber*)type
    ag:(Ag*)ag
    tags:(NSString*)tags
    groupId:(NSString*)groupId
    method:(NSNumber*)method
    status:(NSNumber*)status;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface Instance :NSObject

/// 云主机ID
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// 云主机ID
@property (strong,nonatomic,nonnull)  NSString*  uuid;

/// 云主机名称
@property (strong,nonatomic,nonnull)  NSString*  instanceName;

/// ip
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 公网ip
@property (strong,nonatomic,nonnull)  NSString*  public_ip;

/// 地域
@property (strong,nonatomic,nonnull)  NSString*  regionId;

/// 私有网络
@property (strong,nonatomic,nonnull)  Vpc*  vpc;

/// 类型 1云主机，2原生容器
@property (strong,nonatomic,nonnull)  NSNumber*  type;

/// 高可用组
@property (strong,nonatomic,nonnull)  Ag*  ag;

/// 标签
@property (strong,nonatomic,nonnull)  NSString*  tags;

/// 所属部署组ID，多个,分隔
@property (strong,nonatomic,nonnull)  NSString*  groupId;

/// 客户端状态
@property (strong,nonatomic,nonnull)  NSNumber*  agentStatus;


-(id) initWithInstanceId:(NSString*) instanceId
    uuid:(NSString*)uuid
    instanceName:(NSString*)instanceName
    ip:(NSString*)ip
    public_ip:(NSString*)public_ip
    regionId:(NSString*)regionId
    vpc:(Vpc*)vpc
    type:(NSNumber*)type
    ag:(Ag*)ag
    tags:(NSString*)tags
    groupId:(NSString*)groupId
    agentStatus:(NSNumber*)agentStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* DeployModel_h */
